package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
   * @ClassName: WmsOrderRepairMapper.java
   * @Description: TODO(这里用一句话描述这个类的作用)
   * @Author LH
   * @Date Mon Nov 13 09:20:56 GMT+08:00 2017
   */
   public interface WmsOrderRepairMapper extends BaseDao<WmsOrderRepair> {

       /**
        * 分页查询
        * @param entity 实体
        * @return List<WmsOrderRepair>
        */
       public List<WmsOrderRepair> baseSelectPage(@Param("WmsOrderRepair") WmsOrderRepair entity, @Param("ckid") String ckid);

       /**
        * 获得发运订单
        * @return
        */
       public List<WmsShipmentOrder> getShipmentOrder(@Param("WmsShipmentOrder") WmsShipmentOrder wmsShipmentOrder, @Param("ckid") String ckid, @Param("hzid") String hzid);

       /**
        * 获取拆单记录
        * @return
        */
       public List<WmsSplit> getSplit(@Param("list") List<String> idList);

       /**
        * 获取库位类型
        * @param table 表
        * @param hpid 货品id
        */
       public WmsOneLevelPickingLocation getKwlx(@Param("table") String table, @Param("hpid") String hpid);

     public WmsOrderRepair selectByBhid(@Param("bhid") String bhid);
       /**
        * 导出驱动补货订单（打印)
        * @param idList
        * @return
        */
       public List<WmsOrderRepairDetailed> getOutPutList(@Param("list") List<String> idList, @Param("Map") Map map);

       /**
        * 获取货品
        * @return
        */
       public WmsGoods getGoods(@Param("hpid") String hpid);

       /**
        * 获取排序之后的规则字段
        * @param hzid  货主id
        * @return
        */
       public String getGzzd(@Param("hzid") String hzid);

       /**
        * 获取可用库存
        * @param gzList 要排序的规则字段
        * @return
        */
       public List<WmsStock> getKyStock(@Param("gzList") String gzList, @Param("hpid") String hpid);

       /**
        * 修改原库存的补货数量
        * @param kcid  库存id
        * @return
        */
       public Integer updateBhsl(@Param("kcid") String kcid, @Param("bhsl") String bhsl);

       /**
        * 查询当天的补货编号
        * @param date
        * @return
        */
       public String getCountByBhbh(@Param("date") String date);

       /**
        * 根据库位id和货品id获取库存
        * @param kwid  库位id
        * @param hpid  货品id
        * @return
        */
       public WmsStock getWmsStock(@Param("kwid") String kwid, @Param("hpid") String hpid);

    /**
     * 通过补货单id查询补货明细
     * @param idList
     * @return
     */
    public List<WmsOrderRepairDetailed> selectListById(@Param("list") List<String> idList);


       /**
        * 删除补货单,	删除后将补货单状态改为“作废”，填写删除人，删除时间
        * @param idList
        * @return
        */
       public Integer deleteOrder(@Param("list") List<String> idList, @Param("scry") String scry);

       /**
        * 确认补货单
        * @param idList
        * @return
        */
       public Integer confirmOrder(@Param("list") List<String> idList, @Param("qrry") String qrry);



    /**
     * 根据补货单查询订单明细
     * @param bhid 补货单id
     * @return
     */
    public List<WmsOrderRepairDetailed> getDetailList(@Param("bhid") String bhid);


    /**
     *
     * @param sczt 生成状态
     * @param id  补货单id
     * @return
     */
    public int  updateSczt(@Param("sczt") Integer sczt, @Param("id") String id);


    /**
     * 根据补货单id 查询补货单明细集合（生成补货任务时用）
     * @param bhid 补货单id
     * @return
     */
    public List<WmsOrderRepairDetailed> getList(String bhid);






       /**
    * 插入一条记录
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsert(@Param("WmsOrderRepair") WmsOrderRepair entity);

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
   public Integer baseInsertSelective(@Param("WmsOrderRepair") WmsOrderRepair entity);

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
   public Integer baseDeleteByPrimaryKey(@Param("id") String id);

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys(@Param("list") List<String> idList);



    /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return User
    */
    public WmsOrderRepair baseSelectByPrimaryKey(@Param("id") String id);

   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys(@Param("list") List<WmsOrderRepair> idList);

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKeySelective(@Param("WmsOrderRepair") WmsOrderRepair entity);

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey(@Param("WmsOrderRepair") WmsOrderRepair entity);
}
